package cn.iocoder.an.module.mold.controller.admin.linestopregistration.vo;

import cn.iocoder.an.module.mold.dal.dataobject.linestopcategory.LinestopCategoryDO;
import com.fhs.core.trans.anno.Trans;
import com.fhs.core.trans.constant.TransType;
import com.fhs.core.trans.vo.VO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

import cn.idev.excel.annotation.*;

@Schema(description = "管理后台 - 停线登记 Response VO")
@Data
@ExcelIgnoreUnannotated
public class LinestopRegistrationRespVO implements VO {

    @Schema(description = "类型id", requiredMode = Schema.RequiredMode.REQUIRED, example = "8355")
    @ExcelProperty("类型id")
    private Long id;

    @Schema(description = "日期")
    @ExcelProperty("日期")
    private LocalDate registrationDate;

    @Schema(description = "车间名", example = "李四")
    @Trans(type = TransType.SIMPLE, targetClassName = "cn.iocoder.an.module.system.dal.dataobject.dept.DeptDO", fields = "name", ref = "workshopName2")
    @ExcelProperty("车间名")
    private String workshopName;

    @Schema(description = "车间名")
    @ExcelProperty("车间名")
    private String workshopName2;

    @Schema(description = "提出人")
    @Trans(type = TransType.SIMPLE, targetClassName = "cn.iocoder.an.module.system.dal.dataobject.user.AdminUserDO", fields = "nickname", ref = "proposerName")
    private String proposer;

    @Schema(description = "提出人")
    @ExcelProperty("提出人")
    private String proposerName;

    @Schema(description = "停线类型")
    @ExcelProperty("停线类型")
    @Trans(type = TransType.SIMPLE, target = LinestopCategoryDO.class, fields = "name", ref = "categoryName")
    private int category;

    @Schema(description = "停线类型名称")
    @ExcelProperty("类型名称")
    private String categoryName;

    @Schema(description = "停线问题")
    @ExcelProperty("停线问题")
    private String question;

    @Schema(description = "停线原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "不喜欢")
    @ExcelProperty("停线原因")
    private String reason;

    @Schema(description = "开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("开始时间")
    private LocalDateTime startTime;

    @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("结束时间")
    private LocalDateTime endTime;

    @Schema(description = "持续时间(分钟)", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("持续时间(分钟)")
    private Double duration;

    @Schema(description = "责任部门ID")
    @ExcelProperty("责任部门ID")
    @Trans(type = TransType.SIMPLE, targetClassName = "cn.iocoder.an.module.system.dal.dataobject.dept.DeptDO", fields = "name", ref = "responsibleDepartmentName")
    private String responsibleDepartment;

    @Schema(description = "责任部门名称")
    @ExcelProperty("责任部门名称")
    private String responsibleDepartmentName;

    @Schema(description = "责任人id")
    @ExcelIgnore
    private List<Long> respersonids;

    @Schema(description = "责任人名")
    @ExcelProperty("责任人")
    private String respersons;

    @Schema(description = "影响人数", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("影响人数")
    private Double numberOfAffected;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "提交状态")
    @ExcelProperty("提交状态")
    private int submitIf;

}
